home *** CD-ROM | disk | FTP | other *** search
- # Jedi Knight Cog Script
- #
- # ACTOR_ATST.COG
- #
- #
- # Actor COG for Standard ATST
- # Possibly creates ATAT driver upon death
- # Resitances to certain types of damage
- #
- # [CR]
- #
- # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
- #
- # ========================================================================================
-
- symbols
-
- message killed
- message skill
- message damaged
-
- template pilot=ATATpilot local
- template pilot2=ATATpilot local
- template explosion=+atst_exp local
- thing newThing local
- flex rval local
- flex damageType local
- flex damageAmount local
- flex totalDamage local
- int player local
-
- end
-
- # ========================================================================================
-
- code
-
- killed:
- rval = Rand();
- if (rval < 0.45)
- {
- newThing = CreateThing(explosion, GetSenderRef());
- newThing = CreateThing(pilot, GetSenderRef());
- }
- else if (rval < 0.60)
- {
- newThing = CreateThing(explosion, GetSenderRef());
- newThing = CreateThing(pilot2, GetSenderRef());
- }
- else
- {
- newThing = CreateThing(explosion, GetSenderRef());
- newThing = CreateThing(pilot, GetSenderRef());
- DamageThing(newThing, 1000.0, 0x2, -1);
- }
- return;
-
- # ........................................................................................
-
- skill:
- ReturnEx(-1);
- return;
-
- # ........................................................................................
-
- damaged:
- damageAmount = GetParam(0);
- damageType = GetParam(1);
-
- totalDamage = damageAmount;
-
- if(BitTest(damageType, 0x01))
- totalDamage = damageAmount * 0.0;
- else if(BitTest(damageType, 0x02))
- totalDamage = damageAmount * 0.25;
- else if(BitTest(damageType, 0x10))
- totalDamage = damageAmount * 0.5;
-
- player = GetLocalPlayerThing();
-
- if(GetThingParent(GetSourceRef()) == player)
- {
- if(GetCurWeapon(player) == 1)
- {
- if(GetThingHealth(player) > 1)
- {
- DamageThing(player, 1, 0x1, player);
- }
- }
- }
-
- ReturnEx(totalDamage);
-
- return;
-
- end
-
-